SlideShare a Scribd company logo
1 of 33
Download to read offline
メディア向けデータストアサービスを
リリースして直面したツラミ
〜X-Tech後日談〜
Future Corporation Yasuhiro Murata
JAWS DAYS 2019 2019/02/23
Self Introduction
村田 靖拓(むらた やすひろ)
l 2014/10 新卒でFutureへ入社
l Technology Innovation Group所属
l フロントエンド畑育ち(OSS - Urushi)
l AWSを利用したビッグデータ処理基盤構築(モビリティIoT, IIoT)
l DynamoDB, Elasticsearchを使ったデータストアサービス構築
l 最近はGCPを使ったIoTプラットフォーム構築
l 趣味はテニスとドラム 運動量増やしたいのでボルダリングを検討中
l 五反田で飲み歩くマン おすすめ店のストックは13軒あります。日本酒寄りです。
l JAWS-UG登壇2回目です!お世話になっておりますmm
@famipapamart
Future とは ??
Futureとは??
コンサルからSIまでこなす会社です
• B to Bでシステムを提案・構築しています
• OSSの制作・公開もしています(有名なのは脆弱性スキャンツールのVuls)
本日のメイントピック
• データストアサービスとは?~X-Techのふり返り~
• DynamoDBのツラミ
• Amazon ESのツラミ
本日のトピックから外したもの
• 各種AWSサービスの概要レベルの話(Capacity Unitとは等々)
• 機能面の話(本日の内容は非機能に寄ってます)
もくじ
• データストアサービスの要件
• システムアーキテクチャの話
• Cross Region Replicationの話
• Capacity Unitとスロットリングの話
• データ再インデクシングの話
• まとめ
データストアサービスの要件
データストアサービスの要件
あらゆるコンテンツを格納、すばやく検索できること
• あらゆるメディア形式に対応すること
• コンテンツは記事・写真・動画など様々な種類がある
• 格納したコンテンツ群から欲しいものをすばやく取得できること
• 大量の過去記事を参考に新しい記事を書くことは日常茶飯事
システムアーキテクチャの話
システムアーキテクチャの話(1/2)
gRPC
Client
東京リージョン
シンガポールリージョン
Replication
Program
gRPC
Server
サービスの概要構成図
NLB
DynamoDB
Amazon ES
DynamoDB
システムアーキテクチャの話(2/2)
今回採用したアーキテクチャ
• DynamoDB
• KVSとして採用
• ひとつのキーに紐付き柔軟にデータを格納
• キーアクセスですばやく対象データにアクセス
• CUの許す限り応答性能は一定
• Amazon Elasticsearch Service
• DynamoDBが不得意とする検索を一手に担う
• 全文検索要件を踏まえElasticsearchを採択
• マネージド利用の方針から自前構築ではなくAmazon ES
Cross Region Replicationの話
Cross Region Replicationの話(1/5)
平常時のDR構成図
gRPC
Client
東京リージョン
シンガポールリージョン
Replication
Program
gRPC
Server
NLB
DynamoDB
Amazon ES
DynamoDB
Cross Region Replicationの話(2/5)
gRPC
Client
東京リージョン
gRPC
Server
切り戻し時のDR構成図
Replication
Program
シンガポールリージョン
Copy data
via S3
Cross Region Replicationの話(3/5)
切り戻しの考え方
• 東京リージョン壊滅を想定
• 実際は「DynamoDBだけダウン」等が起こりうる現実的なラインだろうが、Disasterパターンごとに復
旧シナリオを考えるのはなかなかキツい
• 切り戻しもDynamoDBを起点にリージョン間のデータ同期をとる方式でGO
• Cross-Region-Replication ホントウニアリガトウ
• でも...東京リージョンにはGlo(ry
• Global Tableは利用せず、awslabsのdynamodb-cross-region-libraryを利用
• ただし同期開始前のデータの移送には考慮が必要(※)
• Live Stream data はDynamoDB Streams経由でCross-Region-Replicate
• Existing dataはDynamoDB Streamsのキューが失効する24時間以内になにかしらの方式でコピーして
おく必要がある
• Live Stream dataのキューを半永続化することでExisting dataの移送時間制約はなくなった
再掲 with 追記
Cross Region Replicationの話(4/5)
Global Tableは使いませんでした
• サービス制約と切り戻し時の想定シナリオが合致しなかった
• Global Tableを設定する2つ以上のテーブルはそれぞれのデータ件数が0でなければならない
• DR発動時はメイン側は空っぽ(or障害により少なくとも再作成)・DR側はデータありの状態となり、そ
こからGlobal Tableを作成することができない
東京リージョン
シンガポールリージョン
両方
データ0件
障害発生!!
シンガポール側は
データn件
Cross Region Replicationの話(5/5)
(おまけ)Data Pipelineはとても優秀な子でした
• DynamoDBのexport/import機能がとても便利
• 調査等で多量データを一括取得したくなった際都度厄介になってくるのがCU
• プログラム側でうまく意識してあげないとすぐスロットリング発生
• Data PipelineはCU使用率を設定するとその範囲内で稼働してくれるのでうれしい
• とはいえ今はOn DemandなCU設定があるのでそちらを使えばスロットリングの悩みはなくなるはず
export import
Capacity Unitとスロットリングの話
Capacity Unitとスロットリングの話(1/2)
お客様の業務にはスパイクがつきもの
• 世間でイベントごとがあればデータ流量は一気に増える
• 政界の動き(衆議院総選挙)
• スポーツ界の動き(有名選手の活躍、オリンピック)
• 他にも日常にはニュースが様々
Capacity Unitとスロットリングの話(2/2)
お客様の業務にはスパイクがつきもの
• スロットリングを発生させないためのチューニングが大切
• 直近5分の未使用CUを使ってもなお足りない場合はスロットリングとなる
• CU Auto scalingの発動がスパイクに追いつかないケースが多々
• Auto scalingのしきい値を下げることで問題を解消
• デフォルト70%からどれくらい下げるか、を探っていく
しきい値40%の波形 しきい値70%の波形
データ再インデクシングの話
データ再インデクシングの話(1/4)
Amazon ESはindexのclose/openができない
• Mappingの変更は可能
• テーブル定義の変更等あっても項目追加で対応できればオンライン変更が可能
• SettingはDynamicとStaticの2種類存在する
• Dynamic
• Search logのしきい値など
• Static
• Analyzer定義など
• Dynamicなものはオンラインで変更できる
• Staticなものはオンラインで変更できない
• Indexのclose/openを行うことで変更可能なものも存在する
• Analyzer定義はその一つ
データ再インデクシングの話(2/4)
Analyzer定義の変更 → データ再インデクシング
• 本番稼働後の追加要件でanalyzer定義の変更が必要になり、データ再インデクシン
グに踏み切った
• ↓↓のような手順で実施
index
①既存indexの
snapshotを取得
②Snapshotから別名
でリストア
③既存indexを削除 ④定義変更後の
indexを新規作成
⑤再インデクシング
index
restored restored restored
new
restored
new
データ再インデクシングの話(3/4)
Analyzer定義の変更 → データ再インデクシング
• 実績値
• 約30万件(1件約50k, トータル14.5G)相当のデータを再インデクシング
• ②のリストアは1分程度
• ⑤の再インデクシングは10分程度
index
①既存indexの
snapshotを取得
②Snapshotから別名
でリストア
③既存indexを削除 ④定義変更後の
indexを新規作成
⑤再インデクシング
index
restored restored restored
new
restored
new
データ再インデクシングの話(4/4)
再インデクシングやってみて
• できればもうやりたくないw(結構ヒヤヒヤしました)
• ある程度のメンテ時間を確保できた & データ量がそこまで多くなかった というの
もあり無事に実施することができた
• Staticなsettingについては稼働前までにしっかり固めておく
まとめ
まとめ
• アーキテクチャ
• DynamoDBとAmazon ESが各々の弱いところを補完しあってくれた
• マネージドサービスを使うことで、制約もあったが運用面でのメリットをしっかり享受できた
• Cross Region Replication
• Global Tableは使えなかったけど、awslabsのライブラリにすごく助けられた
• CUとスロットリング
• Auto scaling使う場合は、しきい値をチューニングすること
• データ再インデクシング
• できればもうやりたくない笑
• Staticなsettingについてはしっかり固めておくのが吉
We are hiring !!!
We are hiring !!! ~面白い仕事がたくさんあるよ~
Future、こんな仕事やってます!
• 大手メディア企業様向けの新基幹システム開発
• AWS!
• DynamoDBやAmazon ESなどマネージドサービスを活用
• GoでAPI開発
• モビリティIoTプラットフォーム開発
• AWS!
• Glueを用いたETL処理
• AIで画像解析したり、音声認識も取り組んでいます
• 最近はGCP案件も増えてきています
We are hiring !!! ~興味を持った方はぜひ!~
どこに応募していいか
分からない
ポジションマッチング(複数のコンサルタント職種に興味のある方向け)
やりたいことが明確 テクノロジースペシャリスト、ITコンサルタントなど
第2新卒の採用も始めました!!
We are hiring !!! ~会社紹介イベントもやってます~
開催
2019年 2月23日(土曜日)13:30~(受付13:15)
※16:00終了予定
会場 本社 アートヴィレッジ大崎セントラルタワー(受付14階)
プログラム
1.フューチャーアーキテクトのご紹介
2.先輩社員によるコンサルタントの働き方
具体的な仕事(プロジェクト)の中身
3.コンサルタントとの座談会
オフィス見学したい!!も大歓迎
[DynamoDB][AmazonES]メディア向けデータストアサービスをリリースして直面したツラミ ~X-Tech後日談~

More Related Content

What's hot

CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組みCCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
Nobuyuki Matsui
 

What's hot (17)

日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
日本のアニメ産業を爆速させるアニメAPIの開発と活用事例 (ニコニコ超会議2016 大和証券ステージ)
 
Internet of Things ~ M2M と IoTの違いをもう少し理解したい人へ ~
Internet of Things  ~ M2M と IoTの違いをもう少し理解したい人へ ~Internet of Things  ~ M2M と IoTの違いをもう少し理解したい人へ ~
Internet of Things ~ M2M と IoTの違いをもう少し理解したい人へ ~
 
事例とキーワードで紐解くIoT / JAWS-UG長崎支部 Re:Boot! 第一回勉強会@長崎県産業振興財団
事例とキーワードで紐解くIoT / JAWS-UG長崎支部 Re:Boot! 第一回勉強会@長崎県産業振興財団事例とキーワードで紐解くIoT / JAWS-UG長崎支部 Re:Boot! 第一回勉強会@長崎県産業振興財団
事例とキーワードで紐解くIoT / JAWS-UG長崎支部 Re:Boot! 第一回勉強会@長崎県産業振興財団
 
IoT概論: AITCオープンラボ IoT勉強会
IoT概論: AITCオープンラボ IoT勉強会IoT概論: AITCオープンラボ IoT勉強会
IoT概論: AITCオープンラボ IoT勉強会
 
勉強会資料20150119
勉強会資料20150119勉強会資料20150119
勉強会資料20150119
 
IoT時代のデータ伝送とインフラに求められている機能 Developers.IO 2015
IoT時代のデータ伝送とインフラに求められている機能 Developers.IO 2015IoT時代のデータ伝送とインフラに求められている機能 Developers.IO 2015
IoT時代のデータ伝送とインフラに求められている機能 Developers.IO 2015
 
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組みCCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
CCSE2019 TIS - 自律移動サービスロボットの地図とデータモデルの共通化への取り組み
 
Ai時代のapiの役割を妄想する
Ai時代のapiの役割を妄想するAi時代のapiの役割を妄想する
Ai時代のapiの役割を妄想する
 
とあるCTØの切込隊長日誌(スタートアップ) ビジネス篇
とあるCTØの切込隊長日誌(スタートアップ) ビジネス篇とあるCTØの切込隊長日誌(スタートアップ) ビジネス篇
とあるCTØの切込隊長日誌(スタートアップ) ビジネス篇
 
人工知能(AI)の現況と、ビジネスへの活用
人工知能(AI)の現況と、ビジネスへの活用人工知能(AI)の現況と、ビジネスへの活用
人工知能(AI)の現況と、ビジネスへの活用
 
事例から振り返るIo tの今後
事例から振り返るIo tの今後事例から振り返るIo tの今後
事例から振り返るIo tの今後
 
ロボホンオフ会LT~アプリ開発で感じたロボホンのモーションについて~
ロボホンオフ会LT~アプリ開発で感じたロボホンのモーションについて~ロボホンオフ会LT~アプリ開発で感じたロボホンのモーションについて~
ロボホンオフ会LT~アプリ開発で感じたロボホンのモーションについて~
 
組み込みAI LT @ 2018/07/20 上越テックミートアップ
組み込みAI LT @ 2018/07/20 上越テックミートアップ組み込みAI LT @ 2018/07/20 上越テックミートアップ
組み込みAI LT @ 2018/07/20 上越テックミートアップ
 
広島のレモンの島のハッカソンから メイカーフェアに至るまで
広島のレモンの島のハッカソンから メイカーフェアに至るまで広島のレモンの島のハッカソンから メイカーフェアに至るまで
広島のレモンの島のハッカソンから メイカーフェアに至るまで
 
Salon Bot 〜ヘアサロンLINEアシスタントの対話を Repl-AIを使ってプロトタイピング〜
Salon Bot 〜ヘアサロンLINEアシスタントの対話を Repl-AIを使ってプロトタイピング〜Salon Bot 〜ヘアサロンLINEアシスタントの対話を Repl-AIを使ってプロトタイピング〜
Salon Bot 〜ヘアサロンLINEアシスタントの対話を Repl-AIを使ってプロトタイピング〜
 
人工知能についての基礎知識
人工知能についての基礎知識人工知能についての基礎知識
人工知能についての基礎知識
 
非エンジニアに人工知能に 興味を持ってもらう話
非エンジニアに人工知能に興味を持ってもらう話非エンジニアに人工知能に興味を持ってもらう話
非エンジニアに人工知能に 興味を持ってもらう話
 

Similar to [DynamoDB][AmazonES]メディア向けデータストアサービスをリリースして直面したツラミ ~X-Tech後日談~

Similar to [DynamoDB][AmazonES]メディア向けデータストアサービスをリリースして直面したツラミ ~X-Tech後日談~ (20)

スマートファクトリーから動画認識MLまで 製造現場IoTのホントのところ
スマートファクトリーから動画認識MLまで製造現場IoTのホントのところスマートファクトリーから動画認識MLまで製造現場IoTのホントのところ
スマートファクトリーから動画認識MLまで 製造現場IoTのホントのところ
 
IoT時代のデータ伝送とインフラに求められている機能と技能 - ニフティクラウド mobile backend #7
IoT時代のデータ伝送とインフラに求められている機能と技能 - ニフティクラウド mobile backend #7IoT時代のデータ伝送とインフラに求められている機能と技能 - ニフティクラウド mobile backend #7
IoT時代のデータ伝送とインフラに求められている機能と技能 - ニフティクラウド mobile backend #7
 
「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915
「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915
「IoTビジネスの嘘とホント~必要な検討事項と技術検証~」Developer Summit kansai 20160915
 
クラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポートクラウドを用いるIoT開発における実費レポート
クラウドを用いるIoT開発における実費レポート
 
IoT勉強会in岡山#2 M5StickCで遊んでみた!
IoT勉強会in岡山#2 M5StickCで遊んでみた!IoT勉強会in岡山#2 M5StickCで遊んでみた!
IoT勉強会in岡山#2 M5StickCで遊んでみた!
 
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
ブロックチェーンと仮想通貨 -- 新しいビジネスに挑戦
 
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
夏まつり2016 Session4(事例ローテーション:インフォテック 謝花様)
 
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
日本におけるIT自動化導入の特殊な事情 - 菅原 亮、株式会社NTTデータ
 
第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる
 
NRIが全社利用するビジネスチャットツールMattermostのご紹介
NRIが全社利用するビジネスチャットツールMattermostのご紹介NRIが全社利用するビジネスチャットツールMattermostのご紹介
NRIが全社利用するビジネスチャットツールMattermostのご紹介
 
kintone Cafe Japan 2016: kintone x 機械学習で実現する簡単名刺管理
kintone Cafe Japan 2016: kintone x 機械学習で実現する簡単名刺管理kintone Cafe Japan 2016: kintone x 機械学習で実現する簡単名刺管理
kintone Cafe Japan 2016: kintone x 機械学習で実現する簡単名刺管理
 
スマートエスイー: 超スマート社会&DX時代のAI・IoT×ビジネスの人材育成と調査研究
スマートエスイー: 超スマート社会&DX時代のAI・IoT×ビジネスの人材育成と調査研究スマートエスイー: 超スマート社会&DX時代のAI・IoT×ビジネスの人材育成と調査研究
スマートエスイー: 超スマート社会&DX時代のAI・IoT×ビジネスの人材育成と調査研究
 
実世界の人工知能@DeNA TechCon 2017
実世界の人工知能@DeNA TechCon 2017 実世界の人工知能@DeNA TechCon 2017
実世界の人工知能@DeNA TechCon 2017
 
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム
 
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム ver 1.1
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステムver 1.1機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステムver 1.1
機械学習ライブラリ「Spark MLlib」で作る アニメレコメンドシステム ver 1.1
 
20141018 osc tokyo2014講演(配布用)
20141018 osc tokyo2014講演(配布用)20141018 osc tokyo2014講演(配布用)
20141018 osc tokyo2014講演(配布用)
 
2016年度コーポレートフェローシップ活動報告(山本さん)
2016年度コーポレートフェローシップ活動報告(山本さん)2016年度コーポレートフェローシップ活動報告(山本さん)
2016年度コーポレートフェローシップ活動報告(山本さん)
 
ゼロから学ぶAI
ゼロから学ぶAIゼロから学ぶAI
ゼロから学ぶAI
 
Nagoya Career Meetup 2018夏
Nagoya Career Meetup 2018夏Nagoya Career Meetup 2018夏
Nagoya Career Meetup 2018夏
 
第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる第4次産業革命 AIでビジネスの現場が変わる
第4次産業革命 AIでビジネスの現場が変わる
 

[DynamoDB][AmazonES]メディア向けデータストアサービスをリリースして直面したツラミ ~X-Tech後日談~